
        <html>
			<head>
			     <title>SSCTF Writeup - Ano_Tom</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/3603">http://drops.wooyun.org/tips/3603</a></h1>
				
      <p>
        <h2>0x01 Web</h2>

<hr />

<p><strong>1.web1-信息获取</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/e82b2db876111afd/index.php Point:100</p>

<p>Description: 获取信息，提交key</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383656600.jpg" alt="enter image description here" /></p>

<!--more-->

<p>Proceess:</p>

<p>打开题目，title为hex和cookie，下载图片载入编辑器，找到如下hex</p>

<pre><code>23696E636C7564652066696C653D22386630306232303465393830303939382E70687022
</code></pre>

<p>解码为include file="8f00b204e9800998.php"，访问该页面，查看cookie，获得base64加密的key 如图</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383667645.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20141104/2014110405383657998.png" alt="enter image description here" /></p>

<p>解密即可。</p>

<p>Key:<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="b6cde5f3d5fa86c0d3c4f684868782">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>}</p>

<p><strong>2.web2-慧眼识珠</strong></p>

<p>Url: http://ctf.sobug.com/hack_game/5220de5ab2a8ce7d/index.html</p>

<p>Point: 100</p>

<p>Description: 仔细查看页面，获取key</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383768091.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>访问，查看到cookie里有check=0，因而想构造check=1的cookie，构造完毕后继续访问发现页面仍未变化。 继续查看后发现当前页面为index.html，里面的一段加密的js代码解密后就为check=0，再无其他数据。修改cookie后尝试需访问其他动态页面，访问index.php后响应中返回key，如图</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383712380.png" alt="enter image description here" /></p>

<p>Key: <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="ff848c9abcb3cf899aadceb7bfbcb485cf93cb">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>}</p>

<p><strong>3.web3-数据&amp;暗语</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/f31c5630b00b0131/index.php</p>

<p>Point:150</p>

<p>Description: 仔细查看页面获取你想要的key</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383773298.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>打开后，查看源代码提示referer&amp;code，图片中描述去官网看看，确定referer应为官网Referer:http://www.seclover.com（ 注意请求头里若在末尾加了/不会出结果的，Referer:http://www.seclover.com/） 构造referer后，访问获得的响应内容如下</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383849761.png" alt="enter image description here" /></p>

<p>诺基亚的键盘结果如下</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383882396.png" alt="enter image description here" /></p>

<pre><code>2abc 3def 4ghi 5jkl 6mno 7pqrs 8tuv 9wxyz 0空格
</code></pre>

<p>根据0分割数据</p>

<pre><code>843 0 539 0 47 0 73256837 0 9352663 0 968
</code></pre>

<p>猜出前几个个为the key is，因而确定为有意义的单词，无需做词频统计之类的。最终获得的解密字符为the key is seclover welcome you</p>

<p>Key:{seclover welcome you}</p>

<p><strong>4.web4-代理和搜索</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/390532fb5dc7f219/index.php</p>

<p>Point:150</p>

<p>Description: 仔细查看页面，度娘知道答案哟</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383841723.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>通过题目中谷歌是检索不到的，得知存在robots.txt文件，访问获得里面的disallow目录U<code>ser-agent: * Disallow: /S$cL0ver/ Disallow: /include/</code></p>

<p>访问/S$cL0ver/</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383822712.png" alt="enter image description here" /></p>

<p>根据说明，测试代理访问，本地设置X-Forwarded-For为www.seclover.com访问，获得您的ip为www.seclover.com 得知其ip获取是利用X-Forwarded-For，修改其为www.seclover.com的ip，访问即可获得key</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383932597.png" alt="enter image description here" /></p>

<p>Key:{S2CloveRWelcomE_Y0u}</p>

<p><strong>5.web5-编程&amp;脚本</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/f8495eeedb8e92ee/index.php</p>

<p>Point:200</p>

<p>Description: 编程解决问题</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383922182.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>Burp抓包可以看到响应头中有个password字段</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383997101.png" alt="enter image description here" /></p>

<p>每次请求都会变化，这样只要写个自动化脚本抓取后自动提交就可以了，脚本如下</p>

<p><img src="http://static.wooyun.org/20141104/2014110405383914582.png" alt="enter image description here" /></p>

<p>跑起来就可以得到key：</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384033442.png" alt="enter image description here" /></p>

<p>Key: {b7mIfekXA5lwLq}</p>

<p><strong>6.web6-windows密码</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/1ffd89ff6c2a0012/index.php</p>

<p>Point:150</p>

<p>Description: windows密码机制</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384042402.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>下载得到两张图片，进行处理 用stegdetect进行处理，发现利用outguess加密算法，隐藏的数据，根据提示是windows弱口令，试了几次成功读取 如图</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384020173.png" alt="enter image description here" /></p>

<p>查看key文件，得到windows的ntml哈希</p>

<pre><code>ed6c3eb3f56395a1f76ccb47241e3d88:0816f03b51a8ea50bcc7707896c93518
</code></pre>

<p>you can guess.what's this? http://www.objectif-securite.ch/ophcrack.php破解得到key wangke1234 Key:{wangke1234}</p>

<p><strong>7.web7-获取后台密码</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/76412c649fb21553/index.php</p>

<p>Point:220</p>

<p>Description: 获取后台密码</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384189374.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>有验证码，查看验证码是否存在绕过，此处的逻辑漏洞为找回密码功能，点开忘记密码，提示四位验证码已发送到您手机， 因而暴力猜解验证码即可。截取请求包，载入burpsuite intruder，设置payloads为0000-9999进行爆破，爆破后如下</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384255483.png" alt="enter image description here" /></p>

<p>登录框登录成功后，弹出key</p>

<p>Key:{4297f44b13955235245b2497399d7a92}</p>

<p><strong>8.web8-U盘病毒</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/eaf10b34b5ba8770/index.php</p>

<p>Point:300</p>

<p>Description: U盘病毒分析，获取key</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384243820.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>下载U盘镜像后，解压1.4M，果断mount之。得到一个exe和autorun,根据autorun里的信息,放到windows下。 看了下是winrar的自解压的文件,然后用winrar打开，得到3个文件。如图</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384271884.png" alt="enter image description here" /></p>

<p>运行1.exe解压出一个隐藏的test.txt文件。内容如下，计算md5提交就是flag</p>

<p>Key: {队友玩星际去了，没要到key，我代写的}</p>

<p><strong>9.web9-电报解码</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/70e8ff92f2cb2576/index.php</p>

<p>Point:200</p>

<p>Description: 仔细查看页面获取key</p>

<p><img src="http://static.wooyun.org/20141104/2014110406282653377.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>Win7访问是如上图的，但是linux访问直接显示的如下</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384395754.png" alt="enter image description here" /></p>

<p>根据摩斯码表得到明文：</p>

<pre><code>xian seclover welcome you we are very happy for  you
</code></pre>

<p>发现其是根据UA的系统进行判断是否返回数据的</p>

<p>Key:{队友玩星际去了，没要到key，我代写的}</p>

<p><strong>10.web10-SQL</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/f9abf127da5264c1/index.php</p>

<p>Point:350</p>

<p>Description: 注入绕过</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384366450.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>根据题目得知参数为id，访问获得如下提示</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384312630.png" alt="enter image description here" /></p>

<p>得知sql语句。将其载入sqlmap中可以读取到database() version()等信息，其利用的是盲注。此处过滤了select等字符， 且大小写无法绕过。测试发现大致的过滤思路为，检测到字符串中有= 和select等字符，会提示Holly Shit! Damn it.但union未检测，多次测试select用%00来绕过</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384315051.png" alt="enter image description here" /></p>

<p>2的位置有回显。接下来就是基本的sql注入了 先看版本version()得知为5.5.1、再看数据库database()为ctf0web 读取表<code>index.php?id=-1+union+se%00lect+1,table_name ,3+from+information_schema.tables+where+table_schema='ctf0web'#</code> 获得表名helloctf 读取列名</p>

<pre><code>index.php?id=-1+union+se%00lect+1,column_name,3+from+information_schema.columns+where+table_name='helloctf'#
</code></pre>

<p>获得列名id title flag 读取flag <code>index.php?id=-1+union+se%00lect+1,flag,3+from+helloctf+where+id=1#</code> 获得key</p>

<p>Key:{5e1325ba32f012c77f02c422251c3b7c}</p>

<p><strong>11.web11-UPLOAD</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/8e3096620b9a89d1/index.php</p>

<p>Point:200</p>

<p>Description: 按题目要求完成</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384418388.png" alt="enter image description here" /></p>

<p>Proceess: Burp抓包，传正常图片，提示｛不会吧，上传图片不好吧！至少你也传个能解析的啊！｝ 但上传php文件无论怎么改、截断都是提示文件类型错误，所以猜测其对content-type进行了验证，看其是否为图片。 此时上传图片改为xx.php提示上传文件出错，然后利用文件名为大写PHP绕过，如图</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384499979.png" alt="enter image description here" /></p>

<p>Key:<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="176c5c62794472745b7861726525572623">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>}</p>

<p><strong>12.web12-SQL</strong></p>

<p>Url:http://ctf.sobug.com/hack_game/8f0784928387928a/index.php</p>

<p>Point:500</p>

<p>Description: 找找看看，有洞哟</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384414903.png" alt="enter image description here" /></p>

<p>Proceess:</p>

<p>得知为一博客系统，大致探测了下目录结构与文件，收获如下</p>

<pre><code>/config.php
/content.php
/content/2014060212.txt
/content/2014061201.txt
/content/2014060901.txt
/admin/check.php
/admin/index.php
/admin/index.html
</code></pre>

<p>Content.php文件通过file参数传入文件名(不带后缀)，首先想到文件包含漏洞。 访问 <code>http://ctf.sobug.com/hack_game/8f0784928387928a/content.php?file=2014061201</code>为</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384567882.png" alt="enter image description here" /></p>

<p>而该文件为</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384599563.png" alt="enter image description here" /></p>

<p>因而可以确认其不是文件包含，而是文件读取。因而想构造参数读取confi.php里的内容。多次测试发现传入字符会提示日期错误，传入file=2014061202000000一个超长数据，提示服务器内部500错误，说明过了日期检测函数;传入file=2014061202000000../提示日期格式不对，传入file=0xabcdef123提示服务器内部500错误。多次测试发现无法绕过其日期检测函数。</p>

<p>将注意力放在admin的登录框里，有验证码，输入帐号错误会提示不存在该帐号，测试了多个常用管理帐号后依然提示帐号不存在，由于题目是SQL，因而考虑到是sql注入，测试了多次后，发现注入应该不在登录框处。</p>

<p>点开搜索框，url为<code>search.php?word=&amp;tongpeifu=*&amp;sqltongpei=%</code> 显示结果如下</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384561504.png" alt="enter image description here" /></p>

<p>根据url参数命名方式，确定此处应该是注入点了，就是如何构造语句了。 通过搜索</p>

<pre><code>search.php?word=l&amp;tongpeifu=*&amp;sqltongpei=%
search.php?word=x&amp;tongpeifu=*&amp;sqltongpei=%
</code></pre>

<p>都能返回linux的搜索结果，从而确定sql执行的语句大致为</p>

<pre><code>Select * from articles where title like ‘%word%’
</code></pre>

<p>然后需要弄清楚tongpeifu与sqltongpei以及word三者之间是个怎样的逻辑关系</p>

<p>默认三个参数都不传word=&amp;tongpeifu=&amp;sqltongpei=，返回所有数据 传入<code>/search.php?word=li?ux&amp;tongpeifu=?&amp;sqltongpei=</code> 发现没有回显内容，如图</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384535527.png" alt="enter image description here" /></p>

<p>提交<code>search.php?word=li?ux&amp;tongpeifu=?&amp;sqltongpei=n</code> 获得回显</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384557562.png" alt="enter image description here" /></p>

<p>因而大致确定程序的逻辑tongpeifu是指word中的，在执行sql语句时候将word中tongpeifu代表位置用sqltongpei替换。 逻辑清晰了，下面就是要构造sql语句进行注入。构造恒成立语句查看</p>

<pre><code>search.php?word=*&amp;tongpeifu=*&amp;sqltongpei=n%' and 1=1 and '%'='
</code></pre>

<p>发现并无返回数据，多次测试仍无果。</p>

<p>猜测是单引号被转义了，查看了php版本为5.5默认无gpc，则考虑到可能是对获取的数据进行了addslashes处理，现在要做的就是如何绕过addslashes，使单引号逃逸出来。 本地测试。</p>

<p>其实word tongpeifu sqltongpei的处理逻辑，在php中实现就是一个str_replace函数。</p>

<p>构造本地测试的代码为 先查看addslashes的处理单引号、双引号、反斜线、空字符 测试代码</p>

<pre><code>&lt;?php
//addslashes处理的内容有'、\、"、NULL四个字符
if (isset($_GET['singleq'])) {
    echo "' -----&gt; ".addslashes($_GET['singleq'])."&lt;br/&gt;";
}
if (isset($_GET['doubleq'])) {
    echo "\" -----&gt; ".addslashes($_GET['doubleq'])."&lt;br/&gt;";
}
if (isset($_GET['backslash'])) {
    echo "\\ -----&gt; ".addslashes($_GET['backslash'])."&lt;br/&gt;";
}
if (isset($_GET['null'])) {
    echo "%00 -----&gt; ".addslashes($_GET['null'])."&lt;br/&gt;";
}
//sql test
$word=addslashes($_GET['word']);
$tongpeifu=addslashes($_GET['tongpeifu']);
$sqltongpei=addslashes($_GET['sqltongpei']);
echo $word."&lt;br/&gt;";
echo $tongpeifu."&lt;br/&gt;";
echo $sqltongpei."&lt;br/&gt;";
$result=str_replace($tongpeifu, $sqltongpei, $word);
echo "sql--query:"."select title from articles where title like '%{$result}%'"."&lt;br/&gt;";
</code></pre>

<p>输出为</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384529595.png" alt="enter image description here" /></p>

<p>有没有很熟悉，echsop之前爆过的一个插件注入也是类似，利用替换，将单引号逃逸出来 仔细想想，该怎样进行替换，才会使单引号逃逸出来？ 首先在word中测试，另外两个参数为空，查看输出</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384637907.png" alt="enter image description here" /></p>

<p>Word中的\ ‘ %00中的反斜线都是成对出现的，所以要想使得单引号逃逸出来，必须使得其前面的\被转义， 那通配符该用哪个进行替换呢，使得通配符分别为’或\或%00，时候，其替换的时候也为成对替换，因为其自身也被转义了。</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384630860.png" alt="enter image description here" /></p>

<p>但是将通配符变为\0查看输出</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384669357.png" alt="enter image description here" /></p>

<p>令sqltongpeif=\ 输出查看，单引号逃逸</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384620303.png" alt="enter image description here" /></p>

<p>然后执行常规的查库、查表、读取flag。 Order by判断有4个字段， 查到数据库为sql_seclover 请求为</p>

<pre><code>search.php?word=l\%00' union select 1,schema_name,3,4 from information_schema.schemata where 1 %23&amp;tongpeifu=\0&amp;sqltongpei=\
</code></pre>

<p>查表有content、admin（里面无数据，因而后台登录是虚设？）、secret 请求为</p>

<pre><code>search.php?word=l\%00' union select 1,table_name,3,4 from information_schema.tables where table_schema=0x73716C5F7365636C6F766572 %23&amp;tongpeifu=\0&amp;sqltongpei=\
</code></pre>

<p>查字段sid skey 请求为</p>

<pre><code>search.php?word=l\%00' union select 1,column_name,3,4 from information_schema.columns where table_name=0x736563726574 %23&amp;tongpeifu=\0&amp;sqltongpei=\
</code></pre>

<p>获得key{Seclover <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="2275621361124f47">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script> ^u0} 请求为</p>

<pre><code>search.php?word=l\%00' union select 1,skey,3,4 from secret where 1 %23&amp;tongpeifu=\0&amp;sqltongpei=\
</code></pre>

<p>Key:{Seclover <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="2275621361124f47">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script> ^u0}</p>

<h2>0x02 Crack</h2>

<hr />

<p><strong>1.crack1-Crackme1</strong></p>

<p>Url:http://ctf.sobug.com/crackme/b4dc971ef90cb6ae/index.php</p>

<p>Point:100</p>

<p>Proceess:</p>

<p>拖到ida中，逻辑很简单。 找到关键函数sub&#95;401000，分析。 看了下就是和unk&#95;408030位置的数字进行一系列抑或，而且是简单的抑或。所以这个不用逆算法就行，直接上od。 转到0x401000处，在程序结束的地方下断点，运行程序。成功断下后，直接在栈上可以看到注册码，如图。</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384662584.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20141104/2014110405384782070.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20141104/2014110405384742901.png" alt="enter image description here" /></p>

<p><strong>2.Crack2-Crackme2</strong></p>

<p>Url:http://ctf.sobug.com/crackme/82a7d5ac894e5bb8/index.php Point:200</p>

<p>Process:</p>

<p>一个易语言写的程序~ OD载入，ALT+M， 在crackme.data段F2下断，F9运行</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384774767.png" alt="enter image description here" /></p>

<p>中断在krnln库文件代码里，F8单步过下面的JMP就到程序领空</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384879171.png" alt="enter image description here" /></p>

<p>，这时找字符串，应该是有2个还是3个失败，1个不能为空，1个成功，所有中文字符串都下上断点,分析下</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384847484.png" alt="enter image description here" /></p>

<p>首先随便输入，如果断下来</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384898209.png" alt="enter image description here" /></p>

<p>判断密码是不是32位的 生成正确注册码</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384821573.png" alt="enter image description here" /></p>

<p>F9重新运行，在上面的那个函数断下后，看栈里，下面的那个就是正确的注册码</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384857657.png" alt="enter image description here" /></p>

<p><strong>3.Crack3-Crackme3</strong></p>

<p>Url:http://ctf.sobug.com/crackme/e26cac7bac3f78c1/index.php</p>

<p>Point:300</p>

<p>Process:</p>

<p>分析个sethc.exe 粘贴键后门。 直接看消息处理的地方吧</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384987584.png" alt="enter image description here" /></p>

<p>1那个地方是判断ecx是不是为0x30，这个地方是鼠标的点击次数，下面会有分析</p>

<p>2 那个地方是判断按的是确定还是取消，确定是1，取消是2</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384967057.png" alt="enter image description here" /></p>

<p>继续往下看</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384991477.png" alt="enter image description here" /></p>

<p>点击鼠标左键右键都会让ecx+1，左键在403070处写入0x4c,右键写入0x52 到满足ecx==0x30的时候，会来到00401C40这个地方判断鼠标点击的那48下的具体情况； 下面这个循环，将0x4c对应一个0，0x52对应一个1，48下转化为6字节</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384959469.png" alt="enter image description here" /></p>

<p>下面那个比较的地方，那6个字节和“查水表”的HEX值比较</p>

<p><img src="http://static.wooyun.org/20141104/2014110405384971470.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20141104/2014110405385087232.png" alt="enter image description here" /></p>

<p>比较一样就可以启动“后门”弹出本题的flag：D27789EFCA409B6B6EE297D412334A65 所以把“查水表”的2进制转化出来，就可以确定鼠标左键右键点击的次序，触发“后门”。</p>

<p><strong>4.Crack4-Crackme4</strong></p>

<p>Url:http://ctf.sobug.com/crackme/820af53738bfa68e/index.php Point:400 Process: 提示为：输入正确的密码，会释放出文件。key就在文件中。 tips:第一层密码为6为纯数字，第二层密码也是6位。 拿到程序后，放入PEID</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385025920.png" alt="enter image description here" /></p>

<p>FSG的壳，脱壳后发现里面有文件让损坏，所以带壳分动态调试，IDA分析脱壳后的吧。</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385074100.png" alt="enter image description here" /></p>

<p>运行到第3行命令那，栈里第4个位置就是程序入口。在栈中里那个位置右键数据窗口中跟随</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385092283.png" alt="enter image description here" /></p>

<p>然后下硬件访问断点，F9，然后就可以看到真正的代码了 先看401370函数吧，这个是对结果的处理函数，等下分析的时候需要用到，输入的参数为数字，然后6种情况</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385034309.png" alt="enter image description here" /></p>

<p>然后IDA的F5看</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385174080.png" alt="enter image description here" /></p>

<p>为空没有输入密码，不为空进入4013E0处理~ 下面这个函数，当我脱壳后会返回错误5，所以带壳分析了••</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385197187.png" alt="enter image description here" /></p>

<p>进去看下，当返回成0的时候为正确，那么就会生成文件，如果返回2，是密码错误。 里面有把你的密码经过sprintf和“HOWHP”连接在一起，经过401000的2次加密，和一个特定的hash对比。 根据我的那个方法跟一下就OK了，然后需要获得的hash如下 esi=0018F9F0, (ASCII "09B2F924C20C5CA427EED2C5B98BEFBF")</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385192191.png" alt="enter image description here" /></p>

<p>需要加密后的hash为 第一步，我采取的爆破，提示说是第一个密码是6位纯数字，代码在附件里。如果有附件~~ 爆破出来是564987</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385173644.png" alt="enter image description here" /></p>

<p>然后生成了一个一样的exe,同样加壳。只是最后生成的文件会不一样。这个的密码提示为6位，但是不一定是纯数字了，我一开始直接拿第一步写的程序跑了下纯数字，果然不行，然后就去看程序，修改指令，看看会生成什么，结果发现生成了个gif 马上想到GIF89a 6位，也许可以推算出来key 在401270函数里是写文件的，调用了40110把你输入的key和原有资源做运算</p>

<p><img src="http://static.wooyun.org/20141104/2014110406295722121.png" alt="enter image description here" /></p>

<p>看看算法</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385127718.png" alt="enter image description here" /></p>

<p>异或操作，果然可以！ 我使用的密码是123456 然后使用爆破的方法让逻辑正确，会生成一个&#42;**|||||||.gif的文件 然后你winhex打开生成的gif,比如第一个字节为0x01,然后G的hex值为0x47 使用 chr(0x31^0x01^'0x47') #python 就能得正确key的第一个字母，一次下去，GIF89a，就可以得到正确的key 输入正确的key，解密出来一个gif，打开就是flag.</p>

<p><strong>5.Crack5-Crackme5</strong></p>

<p>Url:http://ctf.sobug.com/crackme/02de861ff6b52930/index.php</p>

<p>Point:500</p>

<p>Process:</p>

<p>1：拿到程序后，首先看了字符串</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385231206.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20141104/2014110405385278286.png" alt="enter image description here" /></p>

<p>有反调试，根据那些int3，很明显是seh反调试，打乱程序的执行流程，导致定位关键函数带来困难行流程。 2：来到跟进异常处理，来到</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385255626.png" alt="enter image description here" /></p>

<p>下面的这个地方判断是不是int3引起的异常，是就往下执行，不是就返回EXCEPTION&#95;CONTINUE&#95;SEARCH</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385252067.png" alt="enter image description here" /></p>

<p>这个地方，设置EIP</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385247644.png" alt="enter image description here" /></p>

<p>来我们看看edx的值</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385265930.png" alt="enter image description here" /></p>

<p>也是int3，带着疑惑，继续看~~ 多试几次后，EDX在不断增大~ 最后10多次后，发现了不是int3的情况</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385314651.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20141104/2014110405385329714.png" alt="enter image description here" /></p>

<p>进一步的跟踪，发现是用异常处理例程是没隔10次左右的INT3异常对应一条MSAM语句，所有的语句整合起来，也就是注册码的算法了~ 此外UnhandledExceptionFilter在没有debugger attach的时候才会被调用。所以，跟踪起来很困难。 选择设置条件记录断点</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385398832.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20141104/2014110405385379418.png" alt="enter image description here" /></p>

<p>整理后</p>

<p><img src="http://static.wooyun.org/20141104/2014110405385398886.png" alt="enter image description here" /></p>

<p>根据结果就可以分析算法了。最后做出注册机，提交OK~ 附上源码和一个可以执行的账号~ 请注意：注册机的输出倒过来才是正确的注册码，然后用户名和注册码不能相同，不想改了，注意下就好</p>

<pre><code>v_dature 536426
</code></pre>

<p><img src="http://static.wooyun.org/20141104/2014110405385346316.png" alt="enter image description here" /></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          